package org.jb.coinche.server.statemachine;

import org.jb.coinche.server.notify.NotificationManager;
import org.jb.coinche.server.notify.NotificationProvider;

public interface StateMachine extends NotificationProvider {

	public <T> T getState();
	
	public void setState( Object state );
	
	public void processMessage( Object message ) throws Throwable;
	
	public void registerTransition( Transition transition );
	
	public void setNotificationManager( NotificationManager notificationManager );
	
}
